package com.xquant.marketdata.curvestrip.service;


import com.github.pagehelper.PageInfo;
import com.xquant.marketdata.curvestrip.domain.DivIrCurveDTO;
import com.xquant.marketdata.curvestrip.domain.DivIrCurveStripDTO;
import com.xquant.marketdata.curvestrip.entity.TdivyieldRatesDTO;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 红利率
 *
 * @author xpp
 */

public interface DivIrCurveStripService {

    public static String BEAN_NAME = "divirCurveStripService";

    public List<DivIrCurveDTO> queryDivIrCurveByPage(Map map);

    public PageInfo<Map> queryDivIrCurveRefSetByPage(Map map);

    public List<DivIrCurveStripDTO> queryDivIrCurveRatesByPage(Map map);

    public List<DivIrCurveDTO> getDivIrCurveMx(Map map);

    public void updateDivIrCurve(Map map);

    public void insertDivIrCurve(Map map);

    void allocateDivCurve(Map<String, Object> param);

    public void deleteDivIrCurve(Map map);

    public void updateDivIrCurveRefSet(Map map);
    public void updateDivIrCurveRates(Map map);

    public void insertDivIrCurveRefSetByDate(Map map);

    public void deleteDivIrCurveRefSetByDate(Map map);

    public int queryDivIrCurveRefSetByDate(Map map);

    public void insertDivIrCurveRefSet(Map map);
    public void insertDivIrCurveRates(Map map);

    public void deleteDivIrCurveRefSet(Map map);
    public void deleteDivIrCurveRates(Map map);

    public void deleteAllDivIrCurveRefSet(Map map);

    public void filterDivIrCurveRefSet(Map map);

    public PageInfo<Map> queryFilterDivIrCurveRefSetByPage(Map map);

    void deleteDivIrCurveList(HashMap<String, Set<String>> map);

    List<TdivyieldRatesDTO> getLastDivIrCurve(HashMap<String, Set<String>> map, List<TdivyieldRatesDTO> list);

    boolean insertDivIrCurveList(List<TdivyieldRatesDTO> list);

    Map getDivCurveByCode(String divCode);
    void updateCurveUserAuthority(Map<String, Object> params);

    List<DivIrCurveDTO>  checkDivIrCurve(Map<String, Object> params);
}
